Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Auto splitters usability improvements #30

Merged
merged 5 commits into from
Aug 15, 2023
Merged

Auto splitters usability improvements #30

merged 5 commits into from
Aug 15, 2023

Conversation

Refragg
Copy link
Contributor

@Refragg Refragg commented Aug 12, 2023

This PR adds multiple things regarding auto splitters on obs-livesplit-one:

-Automatic downloading and info based on the splits' game name
-New config folder mimicking OG LiveSplit where the LiveSplit.AutoSplitters.xml will be saved and the auto splitters files
-Responsive UI for the auto splitter related things
-Button to start a game from OBS to allow reading of the child process memory

You can refer to the individual commits to see more details regarding the changes.
I'm still getting the hang of Rust so I assume there are a lot of things that can be improved but from what i tried it works well on Linux

Refragg and others added 5 commits August 11, 2023 18:15
This commit changes multiple things regarding how auto splitters work and are handled by obs-livesplit-one

Instead of having to manually download the auto splitter files, obs-livesplit-one will now use the auto splitter list XML file and download the auto splitter files automatically.
Because of this, it can now display information on the auto splitter like the description and website.
The UI code might be a little jank but it should be updating properly depending on the user's actions.
The auto splitter list and files are also saved to a file in case there is no access to internet. They are saved in a new config folder that's gonna be used by obs-livesplit-one. However, while the list can be read from file, the auto splitters can't be activated from their files yet, this will need to be figured out at some point (probably when we will be able to save and retrieve auto splitter settings from the splits file)

To implement these functionalities, I relied on a few external crates to help with XML parsing and networking things, I assume some things could probably be implemented by livesplit-core but this will do for now.
Some platforms require root privileges to be able to read from any process' memory.
We can however read a child process' memory which would avoid having to run OBS as root.
This patch adds functionality to do exactly that, there is now a path you can provide in the properties window to start the executable you'd like, you'll just have to press the "Start game" button after that.
This patch hopefully fixes the issues that made the CI build fail:

-Added the new OBS functions used to the obs crate
-Switched reqwest to use rustls so that we don't need to install OpenSSL for the linux build
@CryZe CryZe merged commit 217cdae into LiveSplit:master Aug 15, 2023
15 checks passed
@CryZe CryZe added the enhancement New feature or request label Aug 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants